import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

import java.util.List;

import static java.lang.Thread.sleep;

public class Test1 {
    public static void main(String[] args) throws InterruptedException {
//        test1();
//        test2();
//        test3();
//        test4();
//        test5();
//        test6();
//        test7();
//        test8();
//        test9();
        test10();
    }

    private static void test10() {
        //鼠标操作
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //选中百度输入框输入”蛋糕“
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("蛋糕");
        //获取元素百度一下，并点击
        webDriver.findElement(By.cssSelector("#su")).click();
        //鼠标移动到元素“图片”，并进行右击
        //创建一个Actions对象
        Actions actions = new Actions(webDriver);
        //找到目标元素
        WebElement target = webDriver.findElement(By.xpath("//*[@id=\"s_tab\"]/div/a[2]"));
        //鼠标移动到目标对象,并进行右击，为了能够看见过程使用perform()
        actions.moveToElement(target).contextClick().perform();
    }

    private static void test9() throws InterruptedException {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //在百度输入框输入”蛋糕“
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("蛋糕");
        //ctrl+A
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"A");
        sleep(3000);
        //ctrl+x
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"X");
        sleep(3000);
        //ctrl+V
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"V");
        sleep(3000);
        //点击百度一下
        webDriver.findElement(By.cssSelector("#su")).click();
        String no_exp_url = "https://www.baidu.com/";
        String cur_url = webDriver.getCurrentUrl();
        //校验：如果当前的url不等于"https://www.baidu.com/"，则测试通过，否则测试不通过
        if (cur_url == no_exp_url){
            System.out.println("测试不通过");
        }else {
            System.out.println("测试通过");
        }
    }

    private static void test8() throws InterruptedException {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //使用enter键
        //获取输入框并输入”蛋糕“
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("蛋糕");
//        sleep(3000);
        //使用enter键
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.ENTER);
        sleep(3000);
        //找到搜索结果，如果有蛋糕这个词对应的元素，则测试通过，否则测试不通过
        List<WebElement> webElements = webDriver.findElements(By.xpath("//font[text()=\"蛋糕\"]"));
        sleep(3000);
        int flag = 0;
        for (int i = 0; i < webElements.size(); i++) {
            if (webElements.get(i).getText().equals("蛋糕")){
                flag = 1;
                break;
            }
        }
        if (flag == 1){
            System.out.println("测试通过");
        }else {
            System.out.println("测试不通过");
        }
        webDriver.quit();
    }

    private static void test7() throws InterruptedException {
        //调整浏览器的滚动条
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //获取百度搜索框并输入”鲜花“
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("鲜花");
        //获取”百度一下“按钮，并进行点击
        webDriver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        //浏览器滚动条滑到最下面//使用强制类型转换并使用JS代码实现浏览器的操作
        ((JavascriptExecutor)webDriver).executeScript("document.documentElement.scrollTop=10000");
        sleep(3000);
        //浏览器滚动条滑到最上面
        ((JavascriptExecutor)webDriver).executeScript("document.documentElement.scrollTop=0");
        sleep(3000);
        webDriver.quit();
    }

    private static void test6() throws InterruptedException {
        //浏览器的前进后退
        WebDriver webDriver = new ChromeDriver();
//        webDriver.get("https://www.baidu.com/");
        //get的等价写法如下
        webDriver.navigate().to("https://www.baidu.com/");
        //获取百度搜索框，输入”张三“
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("张三");
        //获取百度一下按钮，并点击
        webDriver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        //进行界面的回退
        webDriver.navigate().back();
        sleep(3000);
        //在进行页面的前进
        webDriver.navigate().forward();
        sleep(3000);
        String url = webDriver.getCurrentUrl();
        //验证当前界面的url是否为"https://www.baidu.com/"，不是则通过测试，否则测试不通过
        if (url.equals("https://www.baidu.com/")){
            System.out.println("测试不通过");
        }else {
            System.out.println("通过测试");
        }
        webDriver.quit();
    }

    private static void test5() throws InterruptedException {
        //浏览器的后退
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //选中百度输入框，输入“张三”
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("张三");
        //点击“百度一下按钮”
        webDriver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        //后退界面
        webDriver.navigate().back();
        sleep(3000);
        String url = webDriver.getCurrentUrl();
        //验证后退后的界面的url是否为“https://www.baidu.com/”,如果是则测试通过，否则测试不通过
        if (url.equals("https://www.baidu.com/")){
            System.out.println("通过测试");
        }else {
            System.out.println("测试不通过");
        }
        webDriver.quit();
    }

    private static void test4() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //调整浏览器窗口的大小
        webDriver.manage().window().setSize(new Dimension(200,200));
        //校验百度搜索输入框是否还存在
        WebElement webElement = webDriver.findElement(By.cssSelector("#kw"));
        //结果：如果存在，则通过测试，否则，测试不通过
        if (webElement == null){
            System.out.println("测试不通过");
        }else {
            System.out.println("通过测试");
        }
    }

    private static void test3() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //最大化百度浏览器
        webDriver.manage().window().maximize();
        //看换一换这个元素还是否存在
        String change_str = webDriver.findElement(By.cssSelector("#hotsearch-refresh-btn > span")).getText();
        //验证结果是否存在
        if (change_str.equals("换一换")){
            System.out.println("测试通过");
        }else {
            System.out.println("测试不通过");
        }
        webDriver.quit();
    }

    private static void test2() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        String url = webDriver.getCurrentUrl();
        if (url.equals("https://www.baidu.com/")){
            System.out.println("测试通过");
        }else {
            System.out.println("测试不通过");
        }
        webDriver.quit();
    }

    private static void test1() {
        WebDriver webDriver = new ChromeDriver();
        //打开百度首页
        webDriver.get("https://www.baidu.com/");
        //获取百度首页的title
        String title = webDriver.getTitle();
        if (title.equals("百度一下，你就知道")){
            System.out.println("测试通过");
        }else {
            System.out.println("测试不通过");
        }
        webDriver.quit();
    }
}
